package com.cacho.s2b.lesson.object;

import lombok.Getter;

/** Description: 抽象类
 * 1. 不能实例化对象； 2.抽象类必须被继承，才能被使用；3.一个类只能继承一个抽象类；
 * 4.提示作用，提示方法必须在子类中实现；5.抽象类中不一定包含抽象方法，但有抽象方法的类必定是 抽象类。
 * 6.继承抽象方法的子类必须重写该方法。否则，该子类也必须声明为抽象类。
 **/
@Getter
public abstract class AbstractClass {
    private String name;
    private String explain;
    public AbstractClass(String name, String explain){
        System.out.println("this is a abstract class");
        this.name = name;
        this.explain = explain;
    }
    public void explain(){
        System.out.println("abstract class" + this.name + " " + this.explain);
    }
    public abstract String toString(); //抽象方法只包含一个方法名，而没有方法体
    public static void main(String [] args){
        // 'AbstractClass' is abstract; cannot be instantiated 报错
        // AbstractClass ab = new AbstractClass("abstract", "explain");
    }
}
